import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    //定义一个name，以供全局使用
    name:'张三',
    //定义一个number,以供全局使用
    number:0,
    //定义一个list，以供全局使用
    list:[
      {
        id:1,name:'111'
      },
      {
        id:2,name:'222'
      },
      {
        id:3,name:'333'
      }
    ]
  },
  getters: {
    getMessage(state){//获取修饰后的name，第一个参数state为必要参数,必须写在形参上
      return `hello${state.name}`;
    }
  },
  mutations: {
    setNumber(state){//增加一个mutation方法，方法的作用是让Num从0变成5，state是必须默认参数
      state.number = 5
      },
      setNumberIsWhat(state,payload) {
        state.number = payload.number
    }
  },
  actions: {
    setNum(content){//增加setNum方法，默認第一個参数是content，其值是复制的一份store
      return new Promise(resolve =>{// 我们模拟一个异步操作，一秒后修改number为888
        setTimeout(() =>{
          content.commit('setNumberIswhat',{number:888});
          resolve();
        },1000)
      })
    }
  },
  modules: {
  }
})



